package thread;

/**
 * 线程的优先级
 * 线程有10个优先级，分别对应整数1-10 其中1为最低优先级，10为最高优先级。5为默认值
 *
 * 线程start方法调用后便纳入到了线程调度器中统一管理，此时线程只能被动被分配时间片来
 * 并发运行。线程不能主动索取时间片。调度器会尽可能均匀的将时间分配给每一个线程。
 * 修改线程的优先级可以最大程度改善获取时间片的次数。原优先级高的线程获取时间片的次数越多。
 * priority:优先级
 */
public class PriorityDemo {
    public static void main(String[] args) {
        Thread max = new Thread(() -> {
            for (int i = 0;i<100000;i++)
            System.out.println("max");
        });

        Thread min = new Thread(()->{
            for (int i = 0;i<100000;i++){
                System.out.println("min");
            }
        });

        Thread norm = new Thread(() -> {
            for (int i = 0;i<100000;i++){
                System.out.println("nor");
            }
        });

        min.setPriority(Thread.MIN_PRIORITY);
        max.setPriority(Thread.MAX_PRIORITY);
        max.start();
        norm.start();
        min.start();


    }
}
